package docker

//docker-compose 常用命令

/*

	目录：
		1.compose核心概念
		2.compose使用的三个步骤
		3.常用命令
				遇到不会的使用 docker compose [命令] --help
				因为版本不同，有些版本是 docker-compose [命令] -h

------------------------1.compose核心概念------------------------
	核心概念
		1.一文件
					docker-compose.yml

		2.两要素
			服务：service
					就是一个个应用容器实例，比如订单微服务，库存微服务，mysql容器，nginx容器，redis容器
			工程：project
					由一组关联的应用容器组成的一个【完整业务单元】，在docker-compose.yml文件中定义
					一个工程，就是一个docker-compose.yml文件
			工程=多个服务(容器应用实例)

------------------------2.compose使用的三个步骤------------------------

		1.编写 dockerfile 定义各个微服务应用/容器并构建出对应的镜像文件
		2.使用docker-compose.yml定义一个完整的业务单元，安排好整体应用中的各个容器服务
		3.最后，使用docker-compose up 命令来启动并运行整个应用程序，完成一键部署上线
					docker-compose up  等价于 一键运行了多个容器 docker run mysql,docker run redis,docker run golang....



------------------------1.常用命令------------------------

	执行命令时，要与docker-compose.yml同目录


root@VM-4-8-debian:/tmp# docker compose version
Docker Compose version v2.10.2
root@VM-4-8-debian:/tmp#


	因为docker的版本问题，命令有些变化，取消了docker-compose 中的 【-】
		新命令举例：再往下有实例
		old:  docker-compose -h
		new:  docker compose -h

	Compose常用命令 ，因为docker版本不同，命令有变化

	docker-compose -h										#查看帮助
	docker-compose up										#启动所有docker-compose服务
	docker-compose up -d									#启动所有docker-compose服务并后台运行
	docker-compose up --build 								#重新构建
	docker-compose down										#停止并删除容器、网络、卷、镜像。
	docker-compose exec yml里面的服务id						#进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
	docker-compose ps										#展示当前docker-compose编排过的运行的所有容器
	docker-compose top										#展示当前docker-compose编排过的容器进程
	docker-compose logs yml里面的服务id						#查看容器输出日志

	docker-compose config									#检查配置
	docker-compose config -q								#检查配置，有问题才有输出,检查编写的 .yml文件语法是否出错
	docker-compose restart									#重启服务
	docker-compose start									#启动服务
	docker-compose stop										#停止服务


	因为docker的版本不同，命令有变化

root@VM-4-8-debian:/tmp# docker-compose -h				## 老版本命令
-bash: docker-compose: command not found
root@VM-4-8-debian:/tmp#
root@VM-4-8-debian:/tmp# docker compose -h				## 新命令

Flag shorthand -h has been deprecated, please use --help	##简写标志 -h 已被弃用，请用 --help

Usage:  docker compose [OPTIONS] COMMAND

Docker Compose

Options:
      --ansi string                Control when to print ANSI control characters ("never"|"always"|"auto") (default "auto")
      --compatibility              Run compose in backward compatibility mode
      --env-file string            Specify an alternate environment file.
  -f, --file stringArray           Compose configuration files
      --profile stringArray        Specify a profile to enable
      --project-directory string   Specify an alternate working directory
                                   (default: the path of the, first specified, Compose file)
  -p, --project-name string        Project name

Commands:
  build       Build or rebuild services
  convert     Converts the compose file to platform's canonical format
  cp          Copy files/folders between a service container and the local filesystem
  create      Creates containers for a service.
  down        Stop and remove containers, networks
  events      Receive real time events from containers.
  exec        Execute a command in a running container.
  images      List images used by the created containers
  kill        Force stop service containers.
  logs        View output from containers
  ls          List running compose projects
  pause       Pause services
  port        Print the public port for a port binding.
  ps          List containers
  pull        Pull service images
  push        Push service images
  restart     Restart service containers
  rm          Removes stopped service containers
  run         Run a one-off command on a service.
  start       Start services
  stop        Stop services
  top         Display the running processes
  unpause     Unpause services
  up          Create and start containers
  version     Show the Docker Compose version information

Run 'docker compose COMMAND --help' for more information on a command.
root@VM-4-8-debian:/tmp#



*/
